package workflow;

import java.util.ArrayList;

import docente.Docente;
import TemasPracticas.Trabajo_Practico;

import excepciones.LosTemasNoEstanAprobadosException;
import excepciones.OperacionNoCorrespondienteException;

public class RCreador implements Rol
{

  Creador creador;
  
  public RCreador(Creador unCreador){
    creador=unCreador;
  }
  
  public void excepcion() throws OperacionNoCorrespondienteException{
    throw new OperacionNoCorrespondienteException();
  }
  
  public void crearTemas(ArrayList<String> titulos, Docente autor){
    creador.crearTemas(titulos,autor);
  }
  
  public void enviarTemas(){
    creador.enviarTemas();
  }
  
  public ArrayList<Tema> obtenerTemas(){
    return creador.obtenerTemas();
  }

  public ArrayList<Parrafo> obtenerParrafos(String titulo){
    return creador.obtenerParrafos(titulo);
  }

  public ArrayList<Ejercicio> obtenerEjercicios(String titulo){
    return creador.obtenerEjercicios(titulo);
  }
  
  public void comentarParrafo(Parrafo unParrafo, String comentario){
    creador.comentarParrafo(unParrafo, comentario);
  }
  
  public void comentarEjercicio(Ejercicio unEjercicio, String comentario){
    creador.comentarEjercicio(unEjercicio, comentario);
  }
  
  public void aprobar(String titulo){
    creador.aprobar(titulo);
}

  public void desaprobar(String titulo){
    creador.desaprobar(titulo);
}
  
  public Trabajo_Practico generarVersionFinal(int dia, int mes, int anio, String titulo){
    try
    {
      return creador.generarVersionFinal(dia,mes,anio,titulo);
    }
    catch (LosTemasNoEstanAprobadosException e)
    {
      e.printStackTrace();
    }
    return null;
  }
    
  public void agregarParrafo(String titulo, String contenido){
    try
    {
      excepcion();
    } 
    catch (OperacionNoCorrespondienteException e)
    {
      e.printStackTrace();
    }
  }
  
  public void agregarEjercicio(String titulo, String contenido){
    try
    {
      excepcion();
    } 
    catch (OperacionNoCorrespondienteException e)
    {
      e.printStackTrace();
    }
  }
  
  public void modificarParrafo(Parrafo unParrafo, String contenido){
    try
    {
      excepcion();
    } 
    catch (OperacionNoCorrespondienteException e)
    {
      e.printStackTrace();
    }
  }
  
  public void modificarEjercicio(Ejercicio unEjercicio, String contenido){
    try
    {
      excepcion();
    } 
    catch (OperacionNoCorrespondienteException e)
    {
      e.printStackTrace();
    }
  }
  
}
